﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TOAlignet;

namespace DOAlignet
{
    public class DOComponente
    {
        DBAlignetTesisDataContext dbml;

        public DOComponente()
        {
            dbml = new DBAlignetTesisDataContext();
        }

        public List<TOComponente> obtenerComponentesXSolPaseProduccion(int codigoSolicitud)
        {

            List<TOComponente> listaComponentes = new List<TOComponente>();

            
            
            var componentes = (from componente in dbml.T_COMPONENTE
                               where componente.IN_IDSOLPASEPROD == codigoSolicitud
                                      select componente
                             ) ;

            foreach (var componente in componentes)
            {

                TOComponente toComponente = new TOComponente();
                toComponente.Codigo = componente.IN_IDCOMPONENTE;
                toComponente.CodigoSolPaseProduccion = componente.IN_IDSOLPASEPROD;
                toComponente.Archivo = componente.VC_ARCHIVO;
                toComponente.Tipo = componente.IN_TIPO;
                toComponente.Ruta = componente.VC_RUTA;
                toComponente.Estado = componente.IN_ESTADO;

                listaComponentes.Add(toComponente);
            
            }

            return listaComponentes;
        }

        public TOComponente obtenerComponenteXCodigo(int codigo)
        {

            var component = (from componente in dbml.T_COMPONENTE
                               where componente.IN_IDCOMPONENTE == codigo
                                      select componente
                             ) .Single();



            TOComponente toComponente = new TOComponente();
            toComponente.Codigo = component.IN_IDCOMPONENTE;
            toComponente.CodigoSolPaseProduccion = component.IN_IDSOLPASEPROD;
            toComponente.Archivo = component.VC_ARCHIVO;
            toComponente.Tipo = component.IN_TIPO;
            toComponente.Ruta = component.VC_RUTA;
            toComponente.Estado = component.IN_ESTADO;

            return toComponente;
        }

      

        public void insertarComponente(TOComponente toComponente)
        {
            T_COMPONENTE componente = new T_COMPONENTE();
            componente.IN_IDSOLPASEPROD = toComponente.CodigoSolPaseProduccion;
            componente.IN_TIPO = toComponente.Tipo;
            componente.VC_RUTA = toComponente.Ruta;
            componente.VC_ARCHIVO = toComponente.Archivo;
            componente.IN_ESTADO = toComponente.Estado;

            dbml.T_COMPONENTE.InsertOnSubmit(componente);
            dbml.SubmitChanges();
 
        }

        public void modificarComponente(TOComponente toComponente)
        {

            try
            {
                var component = (from componente in dbml.T_COMPONENTE
                                 where componente.IN_IDCOMPONENTE == toComponente.Codigo
                                 select componente
                                 ).Single();
                component.IN_IDSOLPASEPROD = toComponente.CodigoSolPaseProduccion;
                component.IN_TIPO = toComponente.Tipo;
                component.VC_RUTA = toComponente.Ruta;
                component.VC_ARCHIVO = toComponente.Archivo;
                component.IN_ESTADO = toComponente.Estado;

                dbml.SubmitChanges();
            
            
            }
            catch (Exception e) {

                insertarComponente(toComponente);
            
            }



            

        }

    }
}
